There are many situations in which it is desired to predict outcomes of events and in many cases it is required to make these predictions in real time and where huge amounts (such as terabytes) of information about past events are available to assist with the prediction.
For example, in the field of fraud detection it is often required to process large amounts of data about credit card transaction behavior and to use that information to make predictions as to whether ongoing or recent transactions are likely to be fraudulent. Other examples include email filtering where it is required to predict whether an email is likely to be spam or not on the basis of past examples of emails being labeled implicitly or explicitly as spam. This type of prediction is also required in the field of internet advertising where advertisers may often be billed an amount depending on a bid made by that advertiser for an advertisement and whether that advertisement, when displayed, is selected by one or more end users (by clicking on a link for example). Thus, internet advertisement channel providers typically need to predict so called “click-through rates”, or the probability that a proposed advertisement will be clicked on by one or more end users.
Previously it has been difficult to make such predictions of event outcomes with acceptable levels of accuracy and to do so in real time, for example, before a credit card transaction is complete, before delivery of an email, or before presentation of a proposed internet advertisement. This is especially difficult where there are large amounts of data about past events to be processed.
Coping with dynamic environments is also difficult in the field of event prediction and especially so where large amounts of data are involved. For example a stream of data comprising displayed advertisement impressions and associated click/non click data is dynamic and changes over time. Streams of other types of data in other problem domains also exhibit this property. For example, data about credit card transaction behavior changes as user spending patterns change over time and also as fraudulent activity fluctuates and evolves. An event prediction system needs to be able to adapt as the data changes in real time.
It is noted that the invention described herein is not intended to be limited to implementations that solve any or all of the above mentioned disadvantages.